Начиная знакомство с понятием SEO-оптимизации, многие начинающие веб-разработчики впервые узнают о том, что материал на странице сайта должен соответствовать определенной иерархии. На странице должны быть четко структурированы заголовки и не как попало, а по определенным правилам:
- Заголовок страницы должен быть в теге H1
- Больше одного тега H1 на странице быть не должно
- Последующие подзаголовки должны начинаться с тега H2, в них вложены заголовки H3 и так далее
- Тегов H2, как и последующих может быть сколько угодно
Благодаря такой структуре поисковые роботы, посещая страницы Вашего сайта, находят первый тег H1 и считают его основным, то есть тем, который определяет тему данной страницы. Если таких тегов будет несколько, то поисковый робот может не правильно понять такую структуру и понизить страницу в поисковой выдаче. Примерно такая же ситуация может получиться если на странице не будет заголовка первого уровня вообще.
С теорией все понятно, но когда дело доходит до практики, начинающие веб-разработчики сталкиваются с определенной проблемой – в Joomla заголовки материала заключены в тегах H2. Следовательно, данное упущение стоит исправить.
В данной статье мы поговорим о том как сделать заголовок h1 в Joomla для того чтобы повысить шансы сайта на повышение позиций в поисковой выдаче.
Почему в Joomla заголовок страницы в теге H2
Для начала давайте разберемся, почему в Joomla под заголовок страницы разработчики решили выделить тег H2, а не H1.
Если честно это никакая не ошибка или упущение разработчиков, просто у них такая своеобразная логика. По этой самой логике тег H1 должен быть у названия пункта меню. В этом можно убедиться, если открыть один из пунктов меню и на вкладке «Параметры страницы» поставить переключатель «Показывать заголовок страницы» в положение «Да».
Причем если не указывать значения «Заголовок страницы в браузере» либо «Заголовок страницы» тогда в качестве тега H1 на странице сайта будет выведен заголовок самого пункта меню.
В результате заголовки на странице сайта будет выглядеть следующим образом:
В принципе логика тут прослеживается, заголовок H1 все же присутствует, но для этого необходимо для каждого материала выделять свой пункт меню, а если их достаточно большое количество, то и размер меню будет огромным. Такой подход пусть и возможен, но не всех может устроить.
А давайте рассмотрим другой случай, когда в качестве типа пункта меню будет выступать не материал как в предыдущем случае, а список материалов категории. В этом случае если включить отображение заголовка пункта меню, то у каждого материла категории, будет одинаковый заголовок. Это если честно уже перебор.
В любом случае если мы хотим повысить доверие к сайту со стороны поисковых систем, тогда «странную логику» разработчиков Joomla стоит несколько подправить.
Какие существуют способы изменить тег заголовка с H2 на H1 в Joomla
Если честно выбор не велик и существует всего два способа замены заголовка материала в Joomla с тега H2 на H1:
- Редактирование файла макета статьи
- Переопределение файла макета с последующим редактированием
На большинстве сайтов Вы сможете найти информацию как сделать заголовок материала Joomla в теге H1, но практически все они описывают только первый способ - правку файла макета (или шаблона) статьи.
По сути оба способа похожи, изменять будем один и тот же файл, но есть между ними и существенное отличие.
Чтобы понять, в чем разница между этими двумя способами, и какой подойдет именно для Вас, давайте рассмотрим их подробнее.
Редактирование файла макета статьи
Этот метод самый распространенный и позволяет сделать заголовок материала в теге H1 путем правки определенного файла.
Если Вы ни разу не вносили изменения в файлы CMS Joomla, советую прочитать данную статью, но на всякий случай повторюсь. Первое что необходимо сделать это зайти на сайт по FTP при помощи любого доступного FTP-клиента (например, FileZilla), далее в корневой папке сайта проследовать по пути /components/com_content/views/article/tmpl. Конечно, можно воспользоваться файловым менеджером на Вашем хостинге (если такой имеется), но если честно метод с FTP мне лично нравится больше.
Итак, в папке /components/com_content/views/article/tmpl мы видим 3 файла, но нас интересует только файл с именем default.php. Для начала открываем данный файл для редактирования обычным текстовым редактором (я предпочитаю Sublime Text либо Notepad++).
Файл относительно не большой и в стандартном варианте Joomla версии 3.7.4 состоит из 173 строк кода. Теперь нам надо найти строку, которая отвечает за заголовок материала. Для этого проще всего воспользоваться поиском – нажать Ctrl+F, написать в строку поиска «h2» (без кавычек естественно). Поиск перенесет нас к нужной строке кода, которая в зависимости от версии Joomla (или используемого шаблона, в котором переопределены файлы движка) может отличаться. В Joomla 3.7.4 нужный нам код расположен в строках 53 – 55:
<h2 itemprop="headline"> <?php echo $this->escape($this->item->title); ?> </h2>
Все что от нас требуется это заменить h2 на h1 и сохранить изменения. В результате если перейти на сайт и посмотреть код страницы мы убедимся в том, что заголовок материала теперь находится в теге H1:
Метод действительно рабочий, после проделанных манипуляций мы получим желаемый результат.
Однако мало кто Вам скажет о том, что после обновления Джумлы все изменения могут быть потеряны в связи с заменой данного файла более новым. В таком случае придётся повторять весь процесс после каждого обновления Joomla.
Переопределение компонента com_content с последующим редактированием файла макета
Данный способ хорош тем, что после обновления Joomla внесенные изменений никуда не исчезнут, но для этого придется прибегнуть к переопределению.
Для создания переопределения в панели управления переходим в раздел «Расширения» -> «Шаблоны». Определяем, какой из имеющихся шаблонов используется в данный момент:
Теперь в левой части страницы жмем на пункт меню «Шаблоны» и переходим в параметры нашего шаблона (в моем случае это Protostar):
На открывшейся странице «Менеджер шаблонов: Изменить шаблон» переходим на вкладку «Создать переопределение». Нас интересуют компоненты -> com_content, жмем по нему и в выпадающем списке выбираем шаблон article. После этого Joomla сообщит нам, что переопределение было создано и укажет путь, по которому следует проследовать:
Теперь по FTP переходим в папку с нашим шаблоном /templates/ваш_шаблон/html/com_content/article и видим что в данной папке сразу два файла - default.php и default_links.php. Мы уже знаем, какой из файлов нас интересует, второй можно смело удалять, чтоб не занимал место.
Точно так же как в предыдущем варианте при помощи поиска находим нужный нам тег <h2>:
И меняем теги заголовка H2 на H1:
После чего сохраняем результат и убеждаемся в том, что теперь заголовок страницы находится в теге H1.
Критическая ошибка после того как заголовок материала получил тег H1
Какая еще может быть ошибка, спросите Вы, ведь у нас все получилось и заголовок материала, всё-таки стал первого уровня. Но проблема все же присутствует и я, кстати, был удивлен, что ни на одном сайте про нее нет ни одного слова.
Все говорят, как сделать заголовок в теге H1 и никто не сообщает о том, что после подобных изменений Вы можете получить не один, а сразу два заголовка первого уровня!
В чем же проблема? Вспомните про «странную логику» разработчиков Joomla, ведь они под заголовок первого уровня выделили заголовок пункта меню. Мы конечно поправили заголовок материала, а вот про тот самый заголовок пункта меню забыли.
Теперь представьте ситуацию, на Вашем сайте заголовок материала находится в теге H1, все хорошо, но вдруг Вам или другому доверенному пользователю захотелось включить отображение заголовка пункта меню. В итоге у Вас получится вот такая ситуация:
WTF? Что это за два заголовка первого уровня? Вот именно про это я и говорил! Мы поменяли тег заголовка материала, но не учли, что тег заголовка пункта меню никуда не делся, он, как был первого уровня, так и остался.
Что в этом случае можно сделать? Самый простой вариант не показывать заголовок меню. Но как быть, если сайтом управляете не только Вы? Можно конечно объяснить всем пользователям с правами администратора, что не стоит включать отображение заголовка пункта меню.
Но я Вас уверяю, сколько людям не говори, что что-то делать нельзя, они обязательно это сделают! Кто то из вредности, кто то по глупости, да мало ли… Я предлагаю кардинально решить данную проблему – удалить возможность вывода заголовка пункта меню.
Сделать это не сложно – открываем вновь наш файл default.php, но на этот раз уже ищем тег h1. Поиск предложит нам 4 варианта – два из них только что созданные нами на строках 53 и 55, а так же те самые, которые относятся к заголовку пункта меню, находятся они в строке 31:
Самое банальное, что можно сделать, это удалить строку с заголовком пункта меню (номер 31) полностью. Но как показала практика можно удалить все строки представленные на скриншоте выше (с 29-ой по 38-ю).
С другой стороны конечно можно добавить некое условие в PHP код, которое будет запрещать выводить заголовок пункта меню именно в материалах, но этот вариант несколько сложнее. Если Вам будет интересен именно этот метод, напишите свой комментарий, я обязательно с вами им поделюсь!
Что мы в итоге получим? А получим мы следующее – заголовок материала как прежде будет первого уровня (h1), но на этот раз, если кто-то (возможно и Вы сами) по ошибке включит отображение заголовка пункта меню, ничего страшного не произойдет. На странице сайта будет отображаться только один заголовок первого уровня. А это как раз то чего мы и добивались!